package com.aimashi.railwaytoolmanagesystem.activity;
import java.io.File;

import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.content.pm.ActivityInfo;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.view.KeyEvent;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.view.inputmethod.InputMethodManager;
import android.widget.Toast;

import com.aimashi.railwaytoolmanagesystem.bean.Card;
import com.aimashi.railwaytoolmanagesystem.bean.Transfer;

/**
 * 共用界面处理类
 */
public class Base extends FragmentActivity {
	// 退出时间记录
	private long mExitTime;

	/**
	 * 数据库中保存的用户信息 或者 当前使用的用户
	 */
	public static Card databaseCard;


	/**
	 * 缓存文件夹
	 */
	public static File cacheFile;


	/**
	 * 判断是否在从界面上点击触发
	 */
	private static boolean isPageClick = true;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		requestWindowFeature(Window.FEATURE_NO_TITLE); // 无title
		getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
				WindowManager.LayoutParams.FLAG_FULLSCREEN); // 全屏

		setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);// 固定程序为竖屏
	}

	/**
	 * 跳转界面处理方法
	 * 
	 * @param currentActivity
	 *            当前界面
	 * @param targetClass
	 *            跳转Class
	 */
	public void changeActivity(Activity currentActivity, Class<?> targetClass) {
		// 创建一个intent对象
		Intent intent = new Intent();
		// 指定原本的class和要启动的class
		intent.setClass(currentActivity, targetClass);
		// 调用另外一个新的Activity
		startActivity(intent);
		// 关闭原本的Activity

	//	overridePendingTransition(android.R.anim.slide_in_left,android.R.anim.slide_out_right);
	}

	/**
	 * 跳转界面处理方法
	 * 
	 * @param currentActivity
	 *            当前界面
	 * @param targetClass
	 *            跳转Class
	 */
	public void changeActivity(Activity currentActivity, Class<?> targetClass,
			Transfer transfer) {
		// 创建一个intent对象
		Intent intent = new Intent();
		// 指定原本的class和要启动的class
		intent.setClass(currentActivity, targetClass);

		/* 通过Bundle对象存储需要传递的数据 */
		Bundle bundle = new Bundle();
		/* 字符、字符串、布尔、字节数组、浮点数等等，都可以传 */
		bundle.putSerializable("transfer", transfer);

		/* 把bundle对象assign给Intent */
		intent.putExtras(bundle);

		// 调用另外一个新的Activity
		startActivity(intent);
	}

	@Override
	public boolean onKeyDown(int keyCode, KeyEvent event) {
		if (keyCode == KeyEvent.KEYCODE_BACK) {
		}
		return super.onKeyDown(keyCode, event);
	}

	@Override
	public void onBackPressed() {
		// 这里处理逻辑代码，大家注意：该方法仅适用于2.0或更新版的sdk
		if (isPageClick) {
			if ((System.currentTimeMillis() - mExitTime) > 3000) {
				Toast.makeText(this, "再按一次退出程序", Toast.LENGTH_SHORT).show();
				mExitTime = System.currentTimeMillis();
			} else {
				finish();
			}
		} else {
			isPageClick = true;
			super.onBackPressed();
		}
	}

	/**
	 * 返回上一级
	 * 
	 * @param temp
	 */
	public void goBack(View view) {
		isPageClick = false;
		onBackPressed();
	}


	/**
	 * 退出栈顶Activity
	 * 
	 * @param activity
	 */
	public void popActivity(Activity activity) {
		if (activity != null) {
			activity.finish();
			activity = null;
		}
	}

	/**
	 * 手动调用虚拟键盘
	 */
	public void ShowOrHidekeyBord() {
		InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
		imm.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS);
	}
}
